perm filename LOSS.1[CLS,LSP]2 blob sn#827451 filedate 1986-11-03 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	/sub
C00006 ENDMK
CāŠ—;
/sub
dlw@symbolics,moon@symbolics,bobrow.pa@xerox,gregor.pa@xerox,lgd/cc
Draft

I've read some of the draft being done by Sonya, and I'm quite discouraged.
First, let me stress that my disappointment is mostly with the prose vis-a-vis
what a specification should be rather than the prose per se. There are
some places where I think that there are some non-agreed-upon things
included in her sections.

In particular in the section of CONCEPT.TEX entitled ``Generic Functions and
Methods,'' I think there are some things in there about which we have not
yet agreed as well as some things which are contrary to what we agreed.
In general, the prose in this section is too chatty and tends to discuss
topics out of order for a specification.  I think that the language that
LGD put together, though possibly not precisely applicable to the current
state of affairs, is quite a bit better in this regard.

I think that section ought to start out with more of a definition of what
a generic function is, rather than leaving it as a reader-performed
inference that a generic function is an ordinary Common Lisp function.

I'm not sure what the following sentence can mean:

``The implementation of a generic function varies from call to
call, depending on the class of one or more of the arguments.''

Is this one of those wonders of microcode?: When you call a generic
function the microcode re-implements the generic function. Certainly
it is not the case that the implementation varies but that the
behavior of the generic function varies from call to call.

This sentence doesn't make much sense either:

``An argument that selects which method or methods to run is called a
specialized argument.''

The argument doesn't perform the selection, the generic function does. The
arguments to a generic function are examined by some part of the generic
function in order to perform the selection.  The important point I'm
making is that the document ought to introduce the notion of method
selection before discussing terms that can have no meaning outside of a
knowledge of those notions.

``The name of a generic function...''

Generic functions do not have names; they can be associated with names
the same way that ordinary Common Lisp functions can be so associated.

I could go on. The point is that the document will need to be greatly
rewritten, and we are running out of time. Do you expect that Linda will
do the re-writing? If so, we need to make that decision soon.